# write by hasaki
# first edit on 2019-7-29
# last change on 2019-7-29
# 常鸿量化机的机器学习库
import json
import os
import sys
import operator

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

class MechineLearningManager:
    def __init__(self):
        '''常鸿量化机机器学习库'''
        self.dataPath=''                          # type : str 数据集地址
        self.module=''                            # type : str 使用的模型
        self.moduleParam={}                       # type : dict 模型参数数据结构
        self.tools=''                             # type : str 工具类型
    
    # ------------------------------------------------------------------------
    # 初始化设置
    def init(self,tools=''):
        '''选择初始化的工具包'''
        self.tools=tools
        if not tools:
            print('选择了scretch模式')

        elif tools=='tensorflow':
            print('已选择了tensorflow库')
            try:
                import tensorflow as tf
            except ModuleNotFoundError:
                self.tools=''
                print('本地python中没有安装tensorflow库，已切换回scretch模式')
            
        elif tools=='sklearn':
            print('已选择了sklearn库')
            try:
                import sklearn as sk
            except ModuleNotFoundError:
                self.tools=''
                print('本地python中没有安装sklearn库，已切换回scretch模式')
        
        elif tools=='pytorch':
            print('已选择了pytorch库')
            try:
                import torch
            except ModuleNotFoundError:
                self.tools=''
                print('本地python中没有安装pytorch库，已切换回scretch模式')
        
        elif tools=='statsmodels':
            print('已选择了statsmodels库')
            try:
                import statsmodels as sm
            except ModuleNotFoundError:
                self.tools=''
                print('本地python中没有安装statsmodels库，已切换回scretch模式')
        
        else:
            print('无法识别出选择出的工具库类型:{},已切换回scretch模式'.format(tools))
    
    # ------------------------------------------------------------------------
    # 机器学习模型
    def knn(self):
        '''K近邻算法'''
        pass
    
    def linear(self):
        '''线性模型'''
        pass
    
    def logistic(self):
        '''逻辑回归'''
        pass
    
    def dicisionTree(self):
        '''决策树'''
        pass